package threads.demo01;

import java.util.concurrent.TimeUnit;

public class JoinDemo {

    public static void main(String[] args) throws InterruptedException {
        MyThread t = new MyThread();
        t.start();
        // join() 方法的作用时使所属线程对象正常执行，当前线程（此例中的main线程）进行无限期的阻塞
        // 直到线程 t 执行完销毁后再执行当前线程的后面的代码。
        // 也就是说, join() 方法具有串联执行的作用：　你不执行完，我就不往下走。
        t.join();

        System.out.println("我想等 t 线程执行完成后我再执行, 我做到了");
    }


    static class MyThread extends Thread {
        @Override
        public void run() {
            int seconds = (int) (Math.random() * 10);
            try {
                TimeUnit.SECONDS.sleep(seconds);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "执行完,耗时：" + seconds);
        }
    }

}
